﻿using MgSoft.K3Cloud.WebApi.Common.Dto.Property;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;

namespace MgSoft.K3Cloud.WebApi.Common.Dto.Pur
{
    /// <summary>
    /// 收料通知单保存Dto
    /// </summary>
    public class Pur_ReceiveBillSaveInputDto<Type_Pur_ReceiveBill_Entry, Type_Pur_ReceiveBill_FinanceEntity> 
        where Type_Pur_ReceiveBill_Entry:Pur_ReceiveBill_Entry
        where Type_Pur_ReceiveBill_FinanceEntity:Pur_ReceiveBill_FinanceEntity
    {
        /// <summary>
        /// 供货方联系人
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual long? FID { get; set; }

        /// <summary>
        /// 单据类型
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FBillTypeID { get; set; }

        /// <summary>
        /// 单据编号
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FBillNo { get; set; }

        /// <summary>
        /// 收料日期
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual DateTime FDate { get; set; }

        /// <summary>
        /// 收料组织
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FStockOrgId { get; set; }

        /// <summary>
        /// 收料部门
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FReceiveDeptId { get; set; }

        /// <summary>
        /// 库存组
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FStockGroupId { get; set; }

        /// <summary>
        /// 收料员
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FReceiverId { get; set; }

        /// <summary>
        /// 需求组织
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FDemandOrgId { get; set; }

        /// <summary>
        /// 对应组织
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FCorrespondOrgId { get; set; }

        /// <summary>
        /// 采购组织
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FPurOrgId { get; set; }

        /// <summary>
        /// 采购部门
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FPurDeptId { get; set; }

        /// <summary>
        /// 采购组
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FPurGroupId { get; set; }

        /// <summary>
        /// 采购员
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FPurchaserId { get; set; }

        /// <summary>
        /// 供应商
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FSupplierId { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FNote { get; set; }

        /// <summary>
        /// 供货方
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FSupplyId { get; set; }

        /// <summary>
        /// 
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FSupplyAddress { get; set; }

        /// <summary>
        /// 结算方
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FSettleId { get; set; }

        /// <summary>
        /// 收款方
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FChargeId { get; set; }

        /// <summary>
        /// 货主类型
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FOwnerTypeIdHead { get; set; }

        /// <summary>
        /// 货主
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FOwnerIdHead { get; set; }

        /// <summary>
        /// 确认人
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual FNumberProperty FConfirmerId { get; set; }

        /// <summary>
        /// 确认日期
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FConfirmDate { get; set; }

        /// <summary>
        /// 外部单据
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FIsInsideBill { get; set; }

        /// <summary>
        /// 来自移动
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FIsMobile { get; set; }

        /// <summary>
        /// 序列号上传
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FScanBox { get; set; }

        /// <summary>
        /// 供货方联系人
        /// </summary>
        //[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        //public Fprovidercontactid FProviderContactId { get; set; }

        /// <summary>
        ///变更数量操作
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FIsChangeQty { get; set; }

        /// <summary>
        /// 验收方式
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual string FACCTYPE { get; set; }

        /// <summary>
        /// 明细信息
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual List<Type_Pur_ReceiveBill_Entry> FDetailEntity { get; set; }

        /// <summary>
        /// 财务信息
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public virtual Type_Pur_ReceiveBill_FinanceEntity FinanceEntity { get; set; }
        //public Fdetailentity[] FDetailEntity { get; set; }
        //public Freceivetrace[] FReceiveTrace { get; set; }


    }

    /// <summary>
    /// 收料通知单保存InputDto
    /// </summary>
    public class Pur_ReceiveBillSaveInputDto : Pur_ReceiveBillSaveInputDto<Pur_ReceiveBill_Entry, Pur_ReceiveBill_FinanceEntity>
    { }
}
